home *** CD-ROM | disk | FTP | other *** search
- package sunw.demo.misc;
-
- import java.beans.PropertyChangeListener;
- import java.beans.PropertyChangeSupport;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.Serializable;
- import java.util.Date;
-
- public class TickTock implements Runnable, Serializable {
- private PropertyChangeSupport changes = new PropertyChangeSupport(this);
- private int interval = 5;
- transient Thread runner;
-
- public TickTock() {
- this.reset();
- }
-
- private void reset() {
- this.runner = new Thread(this);
- this.runner.start();
- }
-
- public int getSeconds() {
- return (int)((new Date()).getTime() / 1000L);
- }
-
- public int getInterval() {
- return this.interval;
- }
-
- public void setInterval(int var1) {
- this.interval = var1;
- if (this.runner != null) {
- this.runner.interrupt();
- }
-
- }
-
- public void run() {
- int var1 = this.getSeconds();
-
- while(true) {
- try {
- Thread.sleep((long)(this.interval * 1000));
- } catch (InterruptedException var3) {
- }
-
- int var2 = this.getSeconds();
- this.changes.firePropertyChange("seconds", new Integer(var1), new Integer(var2));
- var1 = var2;
- }
- }
-
- public void addPropertyChangeListener(PropertyChangeListener var1) {
- this.changes.addPropertyChangeListener(var1);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener var1) {
- this.changes.removePropertyChangeListener(var1);
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
- this.reset();
- }
- }
-